package com.racetime.util;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

/**
 * @author : Ice'Clean
 * @date : 2021-05-24
 *
 * 自定义时间工具
 */
public class DateUtil {

    private static String timeFormatter = "yyyy-MM-dd HH:mm:ss";

    /**
     * 工具类私有化
     */
    private DateUtil() {

    }

    public static void setTimeFormatter(String formatter) {
        timeFormatter = formatter;
    }

    /**
     * 按格式获取当前时间
     * @return 格式化时间
     */
    public static String getTime() {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(timeFormatter);
        LocalDateTime dateTime = LocalDateTime.now();

        return formatter.format(dateTime);
    }

    /**
     * 按格式解析当前时间为时间戳
     * @param dateTime 指定格式的时间
     * @return 该时间对应的时间戳
     */
    public static long getLongTime(String dateTime) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(timeFormatter);
        LocalDateTime parse = LocalDateTime.parse(dateTime, formatter);

        return LocalDateTime.from(parse).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
    }
}
